package com.kuaiyin.util;

import java.net.URL;
import java.util.HashMap;
import java.util.Map;

public class UrlUtils {

    /**
     * 解析 URL 获取协议、域名、端口、路径等信息
     *
     * @param url 完整的请求地址
     * @return 包含 protocol, domain, port, path 的 Map
     */
    public static Map<String, Object> parseUrlInfo(String url) {
        try {
            URL parsedUrl = new URL(url);
            String protocol = parsedUrl.getProtocol(); // http / https
            String host = parsedUrl.getHost();         // 域名部分
            int port = parsedUrl.getPort();            // 端口
            String path = parsedUrl.getPath();         // 路径

            // 如果端口未指定，则使用默认端口
            if (port == -1) {
                port = "https".equalsIgnoreCase(protocol) ? 443 : 80;
            }

            Map<String, Object> result = new HashMap<>();
            result.put("protocol", protocol);
            result.put("domain", host);
            result.put("port", port);
            result.put("path", path);

            return result;
        } catch (Exception e) {
            throw new RuntimeException("URL解析失败: " + url, e);
        }
    }
}
